home *** CD-ROM | disk | FTP | other *** search
/ Programming a Multiplayer FPS in DirectX / Programming a Multiplayer FPS in DirectX (Companion CD).iso / DirectX / dxsdk_oct2004.exe / dxsdk.exe / Include / DShowIDL / vidcap.idl < prev    next >
Encoding:
Text File  |  2004-09-27  |  2.6 KB  |  85 lines

  1. //+-------------------------------------------------------------------------
  2. //
  3. //  Microsoft Windows
  4. //  Copyright (c) Microsoft Corporation. All rights reserved.
  5. //
  6. //  File: vidcap.idl
  7. //
  8. //  Contents: Video Capture and Topology Interface Definitions
  9. //
  10. //  History:  first published in XP SP2 (ISelector,IKsTopologyInfo)
  11. //
  12. //--------------------------------------------------------------------------
  13.  
  14. import "unknwn.idl";
  15. import "strmif.idl";
  16.  
  17. // The preprocessor directives here ensure that KSTOPOLOGY_CONNECTION is defined in the correct way
  18. // Constraint is that ks.h cannot be included in the idl file. The directives below ensure that
  19. // 1) KSTOPOLOGY_CONNECTION is locally defined for purposes of building the idl file itself.
  20. // 2) An app can include vidcap.h and ks.h in either order.
  21. // 3) The structure definition for KSTOPOLOGY_CONNECTION does not show up in vidcap.h since ks.h gets included.
  22. // Look at vidcap.h to understand exactly what gets generated.
  23. cpp_quote("#include \"ks.h\"")
  24. cpp_quote("#ifndef _KS_")
  25. typedef struct {
  26.     ULONG   FromNode;
  27.     ULONG   FromNodePin;
  28.     ULONG   ToNode;
  29.     ULONG   ToNodePin;
  30. } KSTOPOLOGY_CONNECTION, *PKSTOPOLOGY_CONNECTION;
  31. cpp_quote("#endif")
  32.  
  33.  
  34. // IKsTopologyInfo interface
  35. [
  36.     object,
  37.     local,
  38.     uuid(720D4AC0-7533-11D0-A5D6-28DB04C10000),
  39.     pointer_default(unique)
  40. ]
  41. interface IKsTopologyInfo : IUnknown
  42. {
  43.     HRESULT get_NumCategories([out] DWORD *pdwNumCategories);
  44.     HRESULT get_Category([in] DWORD dwIndex, [out] GUID *pCategory);
  45.     HRESULT get_NumConnections([out] DWORD *pdwNumConnections);
  46.     HRESULT get_ConnectionInfo([in] DWORD dwIndex, [out] KSTOPOLOGY_CONNECTION *pConnectionInfo);
  47.     HRESULT get_NodeName([in] DWORD dwNodeId, [out] WCHAR *pwchNodeName, [in] DWORD dwBufSize, [out] DWORD *pdwNameLen);
  48.     HRESULT get_NumNodes([out] DWORD *pdwNumNodes);
  49.     HRESULT get_NodeType([in] DWORD dwNodeId, [out] GUID *pNodeType);
  50.     HRESULT CreateNodeInstance([in] DWORD dwNodeId, [in] REFIID iid, [out] void **ppvObject);
  51. }
  52.  
  53.  
  54. // ISelector interface
  55. [
  56.     object,
  57.     local,
  58.     uuid(1ABDAECA-68B6-4F83-9371-B413907C7B9F),
  59.     pointer_default(unique)
  60. ]
  61. interface ISelector : IUnknown
  62. {
  63.     HRESULT get_NumSources([out] DWORD *pdwNumSources);
  64.     HRESULT get_SourceNodeId([out] DWORD *pdwPinId);
  65.     HRESULT put_SourceNodeId([in] DWORD dwPinId);
  66. }
  67.  
  68.  
  69. // IKsNodeControl interface
  70. [
  71.     object,
  72.     local,
  73.     uuid(11737C14-24A7-4bb5-81A0-0D003813B0C4),
  74.     pointer_default(unique)
  75. ]
  76. interface IKsNodeControl :IUnknown
  77. {
  78.     HRESULT put_NodeId([in] DWORD dwNodeId);
  79.     HRESULT put_KsControl([in] PVOID pKsControl);
  80. }
  81.  
  82.  
  83.  
  84.  
  85.